package cn.design;

import cn.design.realize.defaultadapter.AdultPerson;
import cn.design.realize.defaultadapter.DefaultAdapter;
import cn.design.realize.defaultadapter.Dog;

/**
 * @author dlq
 * @description 缺省适配器模式 客户类：
 * @date 2020/9/16 9:58
 * @since 1.0
 */
public class DefaultAdapterClientTest {
    public static void main(String[] args) {
        // 假设这里有一个动物接口(人和牲畜)
        // 建立一个 默认的适配器(共同的适配器)
        //这里有成人执行的动作操作类 AdultPerson
        //这里有动物狗的动作操作类 Dog


        //成人 的动作
        DefaultAdapter adapter = new AdultPerson();
        adapter.eat("成人");
        adapter.sleep("成人");
        adapter.produceTool("成人");
        adapter.think("成人");

        //狗 的 动作
        DefaultAdapter adapter2 = new Dog();

        adapter2.eat("狗");
        adapter2.waggingTai("狗");

        /*
         * 这里 DefaultAdapter 是一个共同的适配器，适用于人和动物,
         * 只不过在其中 AdultPerson  和 Dog 重写了不同方法，将自身需要的方法进行重写，
         * 实现了针对不同的角色，实现的不同的操作
         * */

    }

}
